﻿using System;

using SharedGenomics.Annotations;

namespace SharedGenomics.Workbench.Annotations
{
    /// <summary>
    /// An instance of IAnnotationPoolMediator controls access to a single <see cref="AnnotationPool"/> such as lookup, insertion, creation and destruction. This 
    /// interface is used to decouple annotation pool clients from the way the pool is managed.
    /// </summary>
    public interface IAnnotationRepositoryMediator
    {
        void Add(AnnotationKey key, object value, AnnotationValue parentValue);
        object GetAnnotationForTarget(AnnotationKey annotationKey, object rootValue);
    }
}
